<?php

class Model_User extends PhalApi_Model_NotORM {

    protected function getTableName($id) {
        return 'user';
    }


    public function test($data){

        $user = DI()->notorm->user;
        //Step 1: 开启事务
        DI()->notorm->beginTransaction('db_demo');
        //Step 2: 数据库操作
        $user->insert(array('name' => 'test6'));
        $user->insert(array('name' => 'test7'));

        $this->getORM()->insert(array('phone' => 'test8',));
        DI()->notorm->rollback('db_demo');
        //Step 3: 提交事务
        DI()->notorm->commit('db_demo');   

        // //第一步：先指定待进行事务的数据库（通过获取一个notorm表实例来指定；否则会提示：PDO There is no active transaction）
        
        // $user = DI()->notorm->user;
        // //第二步：开启事务开关（此开关会将当前全部打开的数据库都进行此设置）
        // DI()->notorm->transaction = 'BEGIN';
        
        // //第三步：进行数据库操作
        // $user->insert(array('name' => 'test1',));
        // $user->insert(array('name' => 'test2',));
        // DI()->notorm->info->insert(array('qq' => '1234567',));
        // DI()->notorm->transaction = 'ROLLBACK';
        // //第四：提交/回滚
        // DI()->notorm->transaction = 'COMMIT';

    }

    public function getByUserId($userId) { 
        return $this->getORM()
            ->select('*')
            ->where('id = ?', $userId)
            ->fetch();
    }

    public function getByUserIdWithCache($userId) {
        $key = 'userbaseinfo_' . $userId;
        $rs = DI()->cache->get($key);
        if ($rs === NULL) {
            $rs = $this->getByUserId($userId);
            DI()->cache->set($key, $rs, 600);
        }
        return $rs;
    }

}
